﻿using DAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLL
{
    public class OrdersBLL
    {
        DigitalWorldDataContext db = new DigitalWorldDataContext();
        /// <summary>
        /// Hàm lấy danh sách các đơn đặt hàng
        /// </summary>
        /// <returns></returns>
        public List<order> getOrder() {
            return db.orders.ToList();
        }
        /// <summary>
        /// Hàm thêm mới đơn đặt hàng do nhân viên đặt giúp khách hàng thông qua tư vấn online
        /// </summary>
        /// <param name="o">Đơn đặt hàng</param>
        public void Order_Insert(order o) {
            db.sp_Orders_Insert(o.customerid, o.employeeid, o.orderdate, o.requireddate, o.vat, 
                o.freight, o.shipname, o.shipaddress, o.shipcity, o.shippostalcode, o.shipcountry);
            db.SubmitChanges();
        }
        /// <summary>
        /// Hàm cập nhật tổng thành tiền và ngày giao hàng cho đơn đặt hàng
        /// </summary>
        /// <param name="o">Đơn đặt hàng</param>
        public void Order_UpdateEmpID(order o) {
            db.sp_Order_UpdateEmpID(o.orderid, o.employeeid, o.requireddate, o.totalamount);
            db.SubmitChanges();
        }

        /// <summary>
        /// Hàm cập nhật 1 số thông tin cơ bản cho đơn đặt hàng
        /// </summary>
        /// <param name="o"></param>
        public void Order_Update(order o)
        {
            db.sp_Order_Update_Basic(o.orderid, o.employeeid, o.requireddate, o.freight, o.shipname, o.shipaddress,
                o.shipcity, o.shippostalcode, o.shipcountry,o.hide);
            db.SubmitChanges();
        }

        /// <summary>
        /// Hàm thêm mới đơn đặt hàng do khách hàng đặt hàng trực tuyến
        /// </summary>
        /// <param name="o">Đơn đặt hàng</param>
        public void Order_InsertByCustomer(order o){
            db.sp_Orders_InsertByCus(o.customerid, o.orderdate, o.requireddate, o.vat, 
                o.freight, o.shipname, o.shipaddress, o.shipcity, o.shippostalcode, o.shipcountry);
            db.SubmitChanges();
        }
    }
}
